1. Technical Field
The invention relates data storage systems for data processing systems and more particularly relates to controllers for disk drives and to a system and method for rotational position sensing miss avoidance in disk drive units where serving a plurality of host computer systems.
2. Description of the Related Art
Data processing systems frequently include large scale storage devices such as Direct Access Storage Devices ("DASD"), located externally to the host computer and sometimes at significant distances therefrom. Communication from the host computer to the DASD is accomplished over signal cables, called channels, extending between the host and the control unit.
DASD units frequently use a Count Key Data architecture (CKD) where records written on the track are provided with a count field (an ID) a key field and a data field. Count-key-data type direct access storage devices are a class of disk drive type data storage devices commonly employed with midrange and main frame computers. Historically, data transfer between count-key-data type disk drive units and host computer systems has been a synchronous operation. The connection of elements providing a communication channel between disk drive and host for the data transfer operations are timed to the rotation of the disk The need for synchronization stems from advantages obtained in utilizing elements of the communication channel between a host computer and a disk drive for more than one function.
Elements of a communication channel may be used for other functions during the quiet between data bursts between drive and host. For example, in main frame systems a disk drive controller is typically interposed between more than one computer and more than one disk drive. Any computer may access any disk drive. Elements of the controller connect a selected disk drive to a selected computer for a data exchange at the point when disk rotational position is appropriate for data exchange.
If the disk is inappropriately positioned for a requested exchange, the elements of the controller that would otherwise be used to establish the connection may be used for another purpose for example, the connection of another host to another disk drive. A "disconnection" between the host and the controller is performed to free elements of the paths for other use. Prior to the selected disk reaching the appropriate rotational position for a data exchange, the elements of a channel between drive an attempt to reconnect host to drive is made to provide a data pathway for the transfer operation. Reconnection requires time, particularly for the controller and the host to exchange control signals down a connecting cable to the host. Failure to establish a reconnection requires an additional rotation of the disk before reading of the data field can occur, or a so-called rotational position sensing (RPS) miss. Recovery from such misses are time consuming and accordingly, are undesirable.
In the count-key-data architecture, a count field and an optional key field always precede the data field. Except in a FORMAT write operation, the count field is in the read mode while the data field may be in either the read or write mode. In writing these fields along a recording track, a gap is provided between each of the fields. Those gaps are then utilized to provide a time period in which the direct access storage device control unit and the host channel can communicate with each other. It is during the gap time that the control unit provides information back to the channel in response to the command that it has received and gets the next command in order to begin the next operation for searching, retrieving or writing records. This process is termed gap synchronous, that is to say, that the particular record on which the direct access storage device is working, is the same record on which the channel has requested work, so that both the channel and the device are synchronous with each other in the sense that they are both working on the same record, either to read it or to write it.
As systems become faster and faster, the delays created by the gaps or by the performance of functions within a gap period have to be shrunk to such an extent that the functions can no longer be adequately performed. This is particularly true of optical fiber channels where the data burst rate is several times the burst rate for copper channels.
Synchronous operations provided good results so long as the propagation time for signals on connecting lines between a host computer system and the disk drive storage controller is not too long. Propagation time is a function of the length of the connecting cable and thus providing synchronous operation between host computer and disk drive imposed a practical upper limit on the physical distance between host and disk drive controller.
Achieving synchronization has been further complicated by the introduction of optical fiber cables connecting DASD controllers and host computers. The data burst rate over optical fiber cables is much higher than previous systems. Rate changing buffers are used to accommodate the burst rate differences between disk drives and the connection to the host computer, but such cables have still introduced even longer propagation delays. Accordingly, such cables are best handled in an nonsynchronous manner.
Establishing a reconnection requires availability of all the elements of the communication path. Some of those elements may have been claimed for another task after the disconnection For example, the required port on the host computer may be busy with another storage path, or the upper port of the controller may have become engaged with another host device. The diminishing duration of the reconnection gap reduces the time available to secure the elements of the channel.
370 extended (370 XA) architecture used in data processing systems available from International Business Machines Corporation provides some capability for overcoming traffic congestion on a desired path. The 370 XA architecture supports connection of a host to a DASD controller on from two to four separate physical linkages. A controller, through parallel storage clusters can be connected to up to sixteen cables. A request need not be responded to over the same channel on which it was received. In other words, upon indication that a disk is ready, the controller can secure any of up to four physical links back to a host to establish a data path.
Nonsynchronous storage subsystems have been developed to enable the channel and the device to transfer data independently of each other. To do that a buffer has been inserted into the data path between the device and the channel with separate data paths for the channel and the device, each under the control of a separate process. In that manner, the device process can access records in one portion of the buffer while another portion of the buffer is being used by the channel process. Channel programs can be executed such that the channel and storage control activities required to end execution of one command and advance to the next do not have to occur during the inter-record gap between two adjacent fields.
In a synchronous system, the device and channel operate on the same record so that the data transferred to the buffer by the device is the same data that the channel wants. In the control unit for such a system, shared variables are all that are required to implement the interface between the channel process and the device process. Simple shared variables are adequate because the channel process and device process are always performing the same operation on the same field. In a nonsynchronous system, however, the device may operate significantly ahead of the channel during read operations. The device process is transferring data into the buffer from the device while the channel process is accessing that data in order to send it on to the channel. The device process is therefore the filling or leading activity, while the channel process is the trailing or lagging activity. The reverse is true during write operations where the channel process fills the buffer with data from the channel and, subsequently, the device process accesses that data to send it to the device for writing the records on the storage disks. In this instance, the channel process is the leading, or filling activity while the device process is the trailing, or emptying activity. Since in a nonsynchronous control unit the channel and the device process can be performing different operations on different fields, a more elaborate communication system between the two is required.